package com.mall.b2c.plugin.order;

import java.math.BigDecimal;

import com.mall.b2c.bean.PayInfo;
import com.mall.b2c.domain.member.MemberDomain;
import com.mall.b2c.domain.order.OrderDomain;

/**
 * 订单支付事件
 * @author admin
 *
 */
public interface IOrderPayEvent {

	/**
	 * 订单支付前校验
	 * @param order 订单
	 * @param member 会员
	 * @param total 剩余需要支付金额
	 * @param shipFee 剩余需要支付金额
	 * @param payInfo 付款信息
	 * @return 剩余需要支付金额
	 */
	public BigDecimal beforePay(OrderDomain order, MemberDomain member, BigDecimal total, BigDecimal shipFee, PayInfo payInfo);

	/**
	 * 交易支付后校验
	 * @param order 订单
	 * @param member 会员
	 * @return
	 */
	public String afterPay(OrderDomain order, MemberDomain member);
	
	/**
	 * 获取支付前验证错误信息
	 * @return
	 */
	public String getPayError();
	
}
